home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / arcers / tar316.zip / PCLEVEL.ASM < prev    next >
Assembly Source File  |  1980-07-24  |  1KB  |  77 lines

  1.         include    farnear.inc
  2.  
  3. _TEXT        segment    byte public 'CODE'
  4.         assume    cs:_TEXT
  5.  
  6.     program    _getkey
  7. ;    int getkey(void)
  8. l1:        mov    ah,1
  9.         int    16h
  10.                 mov     ah,0
  11.         jz    short l2
  12.                 int     16h
  13.                 jmp     short l1
  14. l2:        int    16h
  15.         xor    ah,ah
  16.         ret
  17. _getkey        endp
  18.  
  19.     program    _diskserv
  20. ;    int diskserv(int op, int drive, int head, int track, int sector,
  21. ;             int nsects, void far *buffer)
  22.         push    bp
  23.         mov    bp,sp
  24.  
  25.         mov    ah,arglist[0]    ; operation
  26.         mov    al,arglist[10]    ; number of sectors
  27.  
  28.         mov    cx,arglist[6]    ; track number
  29. ;        and    ch,3        ; must not need for valid number
  30.         ror    ch,1
  31.         ror    ch,1
  32.         xchg    ch,cl
  33. ;        mov    dl,arglist[8]    ; sector number
  34. ;        and    dl,3fh        ; must not need for valid number
  35. ;        or    cl,dl
  36.         or      cl,arglist[8]    ; sector number
  37.  
  38.         mov     dl,arglist[2]    ; drive number
  39.         mov    dh,arglist[4]    ; head number
  40.         cmp    ah,8        ; get drive params?
  41.         je    short eight
  42.         les    bx,arglist[12]    ; buffer address
  43.         int    13h
  44.         jc    short end
  45.         xor    ah,ah
  46.         jmp    short end
  47. eight:
  48.         push    di
  49.         int    13h
  50.         jc    short finish
  51.         les    di,arglist[12]    ; buffer address
  52.         xor    ah,ah
  53.         mov    al,dl
  54.         stosw            ; number of disks
  55.         mov    al,dh
  56.         stosw            ; max head number
  57.         mov    dl,cl
  58.         mov    ax,cx
  59.         xchg    ah,al
  60.         mov    cl,6
  61.         shr    ah,cl
  62.         stosw            ; max cylinder number
  63.         mov    al,dl
  64.         and    ax,3fh
  65.         stosw            ; max sector number
  66. finish:                    ; Note: AH = error code
  67.         pop    di
  68. end:
  69.         mov    al,ah
  70.         xor    ah,ah
  71.         pop    bp
  72.         ret
  73. _diskserv    endp
  74.  
  75. _TEXT        ends
  76.         end
  77.